Beschreibung
In diesem praxisorientierten Kurs "Domain-driven Design in der Praxis" tauchst du tief in die Welt des Domain-driven Designs (DDD) ein. DDD ist eine leistungsstarke Methode zur Strukturierung komplexer Systeme, die es dir ermöglicht, fachliche Herausforderungen durch enge Zusammenarbeit mit Fachexpertinnen zu meistern. Du wirst lernen, wie du mit verschiedenen Modellierungsansätzen Bounded Contexts definierst und eine nachhaltige Basis für evolutionäre Architekturen schaffst. Der Kurs ist in drei spannende Tage unterteilt, an denen du nicht nur theoretisches Wissen erwirbst, sondern auch praktische Fähigkeiten entwickelst. Am ersten Tag erhältst du einen Überblick über die Grundkonzepte von DDD und die Geschichte, die hinter dieser Methode steht. Du wirst mit der Ubiquitous Language vertraut gemacht und verstehst die Bedeutung der Zusammenarbeit zwischen Domänenexpertinnen und Softwarepraktikerinnen. Ein interaktives EventStorming zur Fallstudie wird dir helfen, die Theorie in die Praxis umzusetzen und ein Big Picture für deine Projekte zu entwickeln. Der zweite Tag widmet sich dem strategischen Domain-driven Design. Hier lernst du, zwischen Problem- und Lösungsraum zu unterscheiden und deine Problemdomäne in Unterdomänen zu zerlegen. Du wirst in der Lage sein, Core-, Support- und Generic-Domains zu identifizieren und die richtigen Bounded Contexts zu entwickeln. Durch praktische Übungen wirst du die erlernten Konzepte direkt anwenden und vertiefen. Am dritten Tag setzen wir die taktischen Muster des Domain-driven Designs in die Praxis um. Du wirst an einem Design-Level-Event Storming teilnehmen, um Kandidaten für Aggregates, Services und Policies zu identifizieren. Darüber hinaus wirst du lernen, wie man Entitäten und Value Objects auswählt. Der zweite Teil des Tages konzentriert sich auf den soziotechnischen Aspekt von DDD, einschließlich der Ausrichtung von Teams und Governance. Du wirst die Context-Mapping-Muster kennenlernen und einen Überblick über alternative Ansätze wie Team-Topologien erhalten. Dieser Kurs ist ideal für alle, die komplexe Systeme effektiv gestalten und optimieren möchten. Egal, ob du ein Softwareentwickler, Architekt oder Projektmanager bist, die Kenntnisse, die du in diesem Kurs erwirbst, werden dir helfen, deine Projekte erfolgreicher zu gestalten und die Zusammenarbeit im Team zu verbessern.
Tags
#Softwareentwicklung #Agile-Methoden #Modellierung #Softwarearchitektur #Agile-Entwicklung #Domain-Driven-Design #Domain-driven Design #Bounded-Contexts #DDD #GeschäftsarchitekturTermine
Kurs Details
Dieser Kurs richtet sich an Softwareentwickler, Architekten, Projektmanager und alle Fachleute, die an der Entwicklung und Gestaltung komplexer Systeme beteiligt sind. Wenn du ein Interesse an agilen Methoden, Softwarearchitektur und der Verbesserung der Zusammenarbeit zwischen Fachbereichen und technischen Teams hast, ist dieser Kurs genau das Richtige für dich.
Domain-driven Design (DDD) ist ein Ansatz zur Softwareentwicklung, der sich darauf konzentriert, komplexe Geschäftsprobleme durch eine enge Zusammenarbeit zwischen technischen und fachlichen Experten zu lösen. DDD fördert die Entwicklung einer gemeinsamen Sprache (Ubiquitous Language) und die Identifizierung von Bounded Contexts, um die Komplexität von Systemen zu reduzieren und die Verständlichkeit zu erhöhen. Durch die Anwendung von DDD-Prinzipien können Teams agile und evolutionäre Architekturen schaffen, die sich leicht an veränderte Anforderungen anpassen lassen.
- Was versteht man unter Bounded Contexts im Domain-driven Design?
- Wie unterscheidet sich der Problemraum vom Lösungsraum?
- Was ist eine Ubiquitous Language und warum ist sie wichtig?
- Nenne die drei Kategorien von Domänen im strategischen Domain-driven Design.
- Was sind Aggregates und welche Rolle spielen sie im DDD?
- Wie kann Context Mapping zur Governance von Teams beitragen?
- Was sind die Hauptziele von Event Storming?
- Welche Alternativen gibt es zu den Context-Mapping-Mustern im DDD?
- Wie identifizierst du Value Objects in einem Domain-Modell?
- Erkläre den Unterschied zwischen Core-Domains und Generic-Domains.